#!/usr/bin/env python
# coding=utf-8
#--------------------------------------------------------------------------
# 文件名:       XiaoTool.py 
# 说明：        目的、作用说明
#
# 版本：        0.01
# 作者：        xiao
#
# 创建时间：    2011-05-26 
# 许可证：      Apache License V2.0
#--------------------------------------------------------------------------

import traceback
import sys
import re
import os
import time

## 处理html标签
#
def html_clear_tag(s, all=False):
	s = s.replace("'", "&apos;")
	re_cdata = re.compile('//<!\[CDATA\[[^>]*//\]\]>',re.I) #匹配CDATA
	re_script = re.compile('<\s*script[^>]*>[^<]*<\s*/\s*script\s*>',re.I)#Script
	re_style = re.compile('<\s*style[^>]*>[^<]*<\s*/\s*style\s*>',re.I)#style
	re_br = re.compile('<br\s*?/?>', re.I)#处理换行
	re_pbr = re.compile('<pbr\s*?/?>', re.I)#处理换行
	#re_h=re.compile('</?\w+[^>]*>', re.I)#HTML标签
	re_htmls = re.compile('</?[abcefghijkmnoqrsvwxyz][^>]*>', re.I)
	re_xml = re.compile('<\?xml[^>]*>', re.I)#做掉xml
	re_comment = re.compile('<!--[^>]*-->', re.I)#HTML注释

	re_as_p = re.compile('</?p[^>]*>', re.I)
	re_as_div = re.compile('</?div[^>]*>', re.I)

	re_strong = re.compile('</?strong[^>]*>', re.I)

	#去掉多余的空行
	blank_line = re.compile('\n+')
	s = blank_line.sub('\n',s)

	if all:
		re_h=re.compile('</?\w+[^>]*>', re.I)#HTML标签
		re_as_li = re.compile('</?li[^>]*>', re.I)
		re_as_dt = re.compile('</?dt[^>]*>', re.I)
		re_as_dd = re.compile('</?dd[^>]*>', re.I)
		re_as_ol = re.compile('</?ol[^>]*>', re.I)

		s = re_as_li.sub('\n', s)
		s = re_as_ol.sub('\n', s)
		s = re_as_dt.sub('\n', s)
		s = re_as_dd.sub('\n', s)
		s = re_as_p.sub('\n', s)
		s = re_as_div.sub('\n', s)
		s = re_br.sub('\n', s)
		s = re_h.sub('', s)

		#去掉多余的空行
		blank_line = re.compile('\n+')
		s = blank_line.sub('\n',s)

		return s

	s = re_cdata.sub('',s)#去掉CDATA
	s = re_script.sub('',s) #去掉script
	s = re_style.sub('',s)#去掉style
	s = re_br.sub('<pbr>',s)#将br转换为换行
	s = re_pbr.sub('<br />',s)#将br转换为换行
	s = re_htmls.sub('',s) #去掉HTML 标签
	s = re_xml.sub('', s)
	s = re_strong.sub('', s)
	s = re_comment.sub('',s)#去掉HTML注释

	s = re_as_p.sub('<p>', s)
	s = re_as_div.sub('<div>', s)

	return s
#------------------------------------------ End def html_clear_tag()

## 支援url
#
def url_clear(s):
	re_s = re.compile("[^\w]+")

	s = re_s.sub("-", s)
	return s.strip("-")

#------------------------------------------ End def url_clear()

## 方法注释
#
#  @param
#  @return
#
def img_if(fileName):
	sufix = os.path.splitext(fileName)[1]
	sufixArray = [".jpg", ".gif", ".jpeg", ".tiff", ".tif", ".png", ".bmp"]
	if sufix.lower() in sufixArray:
		return True
	else:
		return False
#------------------------------------------ End def img_if()



## 错误输出
#
def setErrLog(errStr):
	setTimeLog(errStr)
#------------------------------------------ End def setErrLog()

## 输出带时间的文本
#
#  @param
#  @return
#
def setTimeLog(str, logFileName="", logDir="."):
	str = "%s  %s\n" % (time.strftime("%Y-%m-%d %H:%M:%S"), str)
	setLog(str, logFileName, logDir)
#------------------------------------------ End def setTimeLog()


## Log 文件输出基础方法
#
#  @param str 输出的内容
#  @param logFileName
#  @param logDir
#  @param logSuffix
#
def setLog(str, logFileName="", logDir=".", logSuffix="log"):
	if not os.path.exists("logs") and logDir != ".":
		os.makedirs("logs")
		logDir = "logs"

	if logFileName == "":
		logFileName = time.strftime("%Y-%m-%d")

	try:
		open("%s/%s.%s" % (logDir, logFileName, logSuffix), "a").write(str)
	except:
		print("Write err!")
#------------------------------------------ End def setLog()


## 方法注释
#
#  @param
#  @return
#
def trace_back():
	try:
		return traceback.print_exc()
	except:
		return ''
#------------------------------------------ End def trace_back()




if __name__ == "__main__":
	print(url_clear("massage & relax's ation"))
